package com.tunan.lsj.business.registration.web;

import java.util.ArrayList;
import java.util.Arrays;
import java.util.HashMap;
import java.util.List;
import java.util.Map;

import org.apache.commons.lang3.StringUtils;
import org.apache.log4j.Logger;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.ModelAttribute;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.bind.annotation.ResponseBody;
import org.springframework.web.bind.annotation.RestController;
import org.springframework.web.servlet.ModelAndView;

import com.github.pagehelper.EasyUiPage;
import com.github.pagehelper.Page;
import com.github.pagehelper.PageHelper;
import com.tunan.common.Result;
import com.tunan.common.resultSub.ResultFailure;
import com.tunan.common.resultSub.ResultSuccess;
import com.tunan.lsj.business.registration.service.GzryYwService;
import com.tunan.persistence.model.GzryYw;
import com.tunan.system.service.IdentifierGenerator;
import com.tunan.system.web.BaseController;

/**
 * @author ljshi
 * @date 2016年4月12日
 * @version 1.0
 * @todo：关注人员的controller控制类
 */

@RestController
public class GzryYwController extends BaseController{
	private Logger log=Logger.getLogger(GzryYw.class);
	
	@Autowired
	private GzryYwService gzryYwService;
	
	@Autowired
	private IdentifierGenerator identifierGenerator;
	
	/**
	 * @author ljshi
	 * @date 2016年4月12日
	 * @todo：关注人员列表
	 * @return
	 */
	@RequestMapping(value="/lsj/registration/gzryYwList")
	public ModelAndView gzryYwList(){
		return new ModelAndView("/lsj/registration/gzryYw-list");
	}
	
	/**
	 * @author ljshi
	 * @date 2016年4月12日
	 * @todo：分页查询关注人员列表
	 * @param pageParam
	 * @param wfds
	 * @return
	 */
	@RequestMapping(value="/lsj/registration/search")
	public EasyUiPage serch(@ModelAttribute("pageParams") Page pageParam,String wfds){
		PageHelper.startPage(pageParam.getPageNum(),pageParam.getPageSize());
		Map<String,Object> params=new HashMap<String,Object>();
		params.put("wfds",wfds);
		Page pageresult=(Page) gzryYwService.selectAll(params);
		return pageresult.getEasyUiPage();
	}
	
	/**
	 * @author ljshi
	 * @date 2016年4月13日
	 * @todo：编辑关注人员
	 * @param id
	 * @return
	 */
	@RequestMapping(value="/lsj/registration/showModify",method=RequestMethod.GET)
	public ModelAndView showModify(String id){
		ModelAndView model=new ModelAndView();
		try {
			if(StringUtils.isNotBlank(id)){
				GzryYw form=gzryYwService.selectOne(id);
				model.addObject("vo","form");
			}
		} catch (Exception e) {
			log.error(e.getMessage());
		}
		model.setViewName("/lsj/registration/gzryYw-edit");
		return model;
	}
	
	/**
	 * @author ljshi
	 * @date 2016年4月13日
	 * @todo：保存新增关注人员的信息
	 * @param gzryYw
	 * @return
	 */
	@RequestMapping(value = "/lsj/registration/save", method = RequestMethod.POST)
	@ResponseBody
	public Result save(@ModelAttribute("gzryYw") GzryYw gzryYw) {
		ResultSuccess rs = new ResultSuccess();
		ResultFailure rf = new ResultFailure();
		try {
			if (gzryYw != null) {
				if (StringUtils.isNotBlank(gzryYw.getId())) {
					gzryYwService.update(gzryYw);
					rs.setMessage("修改成功");
				} else {
					gzryYw.setId(identifierGenerator.generate());
					gzryYwService.insert(gzryYw);
					rs.setMessage("新增成功");
				}
			}
			return rs;

		} catch (Exception e) {
			e.printStackTrace();
			log.error(e.getMessage(), e);
		}
		rf.setMessage("操作失败");
		return rf;
	}
	
	/**
	 * @author ljshi
	 * @date 2016年4月13日
	 * @todo：删除关注人员
	 * @param id
	 * @return
	 */
	@RequestMapping(value="/lsj/registration/delete",method=RequestMethod.POST)
	@ResponseBody
	public Result delete(String id){
		try {
			if(StringUtils.isNotBlank(id)){
				gzryYwService.delete(id);
			}
			return new ResultSuccess("删除成功");
		} catch (Exception e) {
			e.printStackTrace();
			log.error(e.getMessage());
		}
		return  new ResultFailure("删除失败");
	}
	
	/**
	 * @author ljshi
	 * @date 2016年4月13日
	 * @todo：批量删除关注人员
	 * @param ids
	 * @return
	 */
	@RequestMapping(value="/lsj/registration/batchDel",method=RequestMethod.POST)
	public Result bitchDel(String ids){
		try {
			if(StringUtils.isNotBlank(ids)){
				List<String> idList=new ArrayList<String>();
				if(ids.contains(",")){
					idList=Arrays.asList(ids.split(","));
				}else{
					idList.add(ids);
				}
				gzryYwService.batchDel(idList);
			}
			return new ResultSuccess("批量删除成功");
		} catch (Exception e) {
			e.printStackTrace();
			log.error(e.getMessage());
		}
		return new ResultFailure("批量删除失败");
	}
	
}
